<script setup lang="ts">
import { ref } from "vue";
import { onMounted } from "vue";
import * as echarts from "echarts";
import {getoption} from "../../api/report.ts"
/* 数据可视化编程步骤：
1、下载  npm i echarts
2、在组件中引入 
import * as echarts from "echarts"
3、准备一个盒子  
4、基于盒子，初始化echarts实例
5、配置option
*/

let echartsRef = ref(null);


onMounted( async () => {
  //3 、基于盒子，初始化echarts实例
  let Mychart = echarts.init(echartsRef.value);

// 准备option
  // let option = {
  //   title: {
  //     text: "ECharts 入门示例",
  //   },
  //   tooltip: {},
  //   xAxis: {
  //     data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"],
  //   },
  //   yAxis: {},
  //   series: [
  //     {
  //       name: "销量",
  //       type: "bar",
  //       data: [5, 20, 36, 10, 10, 20],
  //     },
  //   ],
  // };


  // 折线图option
//   let option = {
//     title: {
//       text: 'Stacked Line'
//     },
//     tooltip: {
//       trigger: 'axis'
//     },
//     legend: {
//       data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
//     },
//     grid: {
//       left: '3%',
//       right: '4%',
//       bottom: '3%',
//       containLabel: true
//     },
//     toolbox: {
//       feature: {
//         saveAsImage: {}
//       }
//     },
//     xAxis: {
//       type: 'category',
//       boundaryGap: false,
//       data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
//     },
//     yAxis: {
//       type: 'value'
//     },
//     series: [
//       {
//         name: 'Email',
//         type: 'line',
//         stack: 'Total',
//         data: [120, 132, 101, 134, 90, 230, 210]
//       },
//       {
//         name: 'Union Ads',
//         type: 'line',
//         stack: 'Total',
//         data: [220, 182, 191, 234, 290, 330, 310]
//       },
//       {
//         name: 'Video Ads',
//         type: 'line',
//         stack: 'Total',
//         data: [150, 232, 201, 154, 190, 330, 410]
//       },
//       {
//         name: 'Direct',
//         type: 'line',
//         stack: 'Total',
//         data: [320, 332, 301, 334, 390, 330, 320]
//       },
//       {
//         name: 'Search Engine',
//         type: 'line',
//         stack: 'Total',
//         data: [820, 932, 901, 934, 1290, 1330, 1320]
//       }
//     ]
// };


// 堆叠图的option
let option1 = {
  title: {
    text: '商城后台数据统计图'
  },
  tooltip: {
    trigger: 'axis',
    axisPointer: {
      type: 'cross',
      label: {
        backgroundColor: '#6a7985'
      }
    }
  },
  legend: {
    data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
  },
  toolbox: {
    feature: {
      saveAsImage: {}
    }
  },
  grid: {
    left: '3%',
    right: '4%',
    bottom: '3%',
    containLabel: true
  },
  xAxis: [
    {
      type: 'category',
      boundaryGap: false,
      data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
    }
  ],
  yAxis: [
    {
      type: 'value'
    }
  ],

  series: [
    {
      name: 'Email',
      type: 'line',
      stack: 'Total',
      areaStyle: {},
      emphasis: {
        focus: 'series'
      },
      data: [120, 132, 101, 134, 90, 230, 210]
    },
    {
      name: 'Union Ads',
      type: 'line',
      stack: 'Total',
      areaStyle: {},
      emphasis: {
        focus: 'series'
      },
      data: [220, 182, 191, 234, 290, 330, 310]
    },
    {
      name: 'Video Ads',
      type: 'line',
      stack: 'Total',
      areaStyle: {},
      emphasis: {
        focus: 'series'
      },
      data: [150, 232, 201, 154, 190, 330, 410]
    },
    {
      name: 'Direct',
      type: 'line',
      stack: 'Total',
      areaStyle: {},
      emphasis: {
        focus: 'series'
      },
      data: [320, 332, 301, 334, 390, 330, 320]
    },
    {
      name: 'Search Engine',
      type: 'line',
      stack: 'Total',
      label: {
        show: true,
        position: 'top'
      },
      areaStyle: {},
      emphasis: {
        focus: 'series'
      },
      data: [820, 932, 901, 934, 1290, 1330, 1320]
    }
  ]
};

  let res = await getoption()
  console.log(res)
  if(res.meta.status === 200){
    // let option2 = res.data
    let option2 = {...option1,...res.data}
  Mychart.setOption(option2)


  }

  // Mychart.setOption(option)
});

</script>

<template>
  <div>
    数据报表
    <div class="echart" ref="echartsRef"></div>
  </div>
</template>
<style scoped>
.echart {
  width: 900px;
  height: 500px;
  background-color: pink;
}
</style>
